// ==========================================================================										
//	- FACTEUR
// ==========================================================================

#ifndef __FACTEUR__
#define __FACTEUR__

#include"netg.h"
#include "facteur.h"

// ==========================================================================
//	Constructeurs et destructeur
// ==========================================================================

//	constructeur
Facteur::Facteur()
{
	Type = FACTEUR;
	E = NULL;
	N = NULL;
}

Facteur::Facteur(Expression* MonE)
{
	Type = FACTEUR;
	E = MonE;
	N = NULL;
}

Facteur::Facteur(Netg* MonNETG)
{
	Type = FACTEUR;
	N = MonNETG;
	E = NULL;
}

// ==========================================================================
//	Accesseurs
// ==========================================================================


// ==========================================================================
//	Mutateurs
// ==========================================================================

void Facteur::setE(Expression * Exp)
{
	E = Exp;
}

void Facteur::setN(Netg * Nb)
{
	N = Nb;
}
// ==========================================================================
//	Autres Méthodes
// ==========================================================================

Netg Facteur::Calcul()
{
	if( E == NULL )
		return *N;
		
	return E->Calcul();
}

// ==========================================================================
//	destructeur
// ==========================================================================
Facteur::~Facteur()
{
	delete E;
	delete N;
}


#endif
